/**
 * @file pays.c
 * @brief Fichier source du module pays.
 *
 * @author Rachid Delory, Mamadou Keita, Florian Bernard
 */

/* *********************************************************************

                       Librairies de pays                          

********************************************************************* */

#include "pays.h"

/* *********************************************************************

                        Fonctions                                      

********************************************************************* */

void init_Pay(Pays * pays)
{
  if(pays)
    {
      pays->id = 0;
      pays->libelle = NULL;
      pays->maj = 0;
      pays->sup = 0;
    }
}

void liberer_Pay(Pays * pays)
{
  if(pays)
    {
      pays->id = 0;
      if(pays->libelle)
	{
	  free(pays->libelle);
	  pays->libelle = NULL;
	}
    }
}

Pays * creer_Pay()
{
  Pays *pays;
  pays = (Pays *) malloc ( 1 * sizeof(Pays));
  init_Pay(pays);
  return pays;
}

void detruire_Pay(Pays ** pays)
{
  if((*pays))
    {
      liberer_Pay((*pays));
      free((*pays));
      (*pays) = NULL;
    }
}

void copier_Pay(Pays **dest, const Pays *src)
{
  if((*dest) == NULL)
    {
      (*dest) = creer_Pay();
    }
  if(src)
    {
      (*dest)->id = src->id;
      copier_Uti(&((*dest)->libelle), src->libelle);
    }
  else
    detruire_Pay(dest);
}
unsigned int getId_Pay(const Pays * ptr)
{
  if(ptr)
    return ptr->id;
  return 0;
}

void setId_Pay(Pays *ptr, const unsigned int val)
{
  if(ptr)
    ptr->id = val;
}

char * getLibelle_Pay(const Pays * ptr)
{
  if(ptr)
    return ptr->libelle;
  return NULL;
}

void setLibelle_Pay(Pays *ptr, const char * val)
{
  if(ptr)
    {
      copier_Uti(&(ptr->libelle), val);
    }
}

void setMaj_Pay(Pays *ptr, const char b)
{
  if(ptr)
    {
      ptr->maj = b;
      if(b == 1)
	ptr->sup = !b;
    }
}

char getMaj_Pay(const Pays *ptr)
{
  if(ptr)
    return ptr->maj;
  return 0;
}

void setSup_Pay(Pays *ptr, const char b)
{
  if(ptr)
    {
      ptr->sup = b;
      if(b == 1)
	ptr->maj = !b;
    }
}

char getSup_Pay(const Pays *ptr)
{
  if(ptr)
    return ptr->sup;
  return 0;
}
